package cl.zeke.remoto.vista.managedbeans;

import cl.zeke.comun.dto.Persona;
import javax.annotation.PostConstruct;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component;

@Component
@Scope("view")
public class InicioBean {
    
    private static Logger log = LoggerFactory.getLogger(InicioBean.class);

    private String saludo;

    @Autowired
    private JmsTemplate jmsTemplate;
    
    
    @PostConstruct
    public void iniciar() {
        saludo = "Hola Mundo !!!";
    }
    
    
    public void enviarMsgTopic() {
        
        //crear persona
        final Persona p = new Persona();
        p.setNombre("persona desde cliente");
        p.setEdad(21);

        Persona p2 = new Persona();
        p2.setNombre("familiar");
        p2.setEdad(10);

        p.setFamiliares(new Persona[]{p2, p2});

        for (int i = 0; i < 1; i++) {
            p.setNombre("persona iteracion: " + (i + 1));
            jmsTemplate.send("remoto.topic", new MessageCreator() {
                @Override
                public Message createMessage(Session session) throws JMSException {
                    return session.createObjectMessage(p);
                }
            });
            log.debug("enviado mensaje: " + (i + 1));
        }
        
    }
    
    /*getters and setters*/
    public String getSaludo() {
        return saludo;
    }
    public void setSaludo(String saludo) {
        this.saludo = saludo;
    }
}
